package com.example.his.api.config;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.redis.connection.RedisConnectionFactory;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.serializer.GenericJackson2JsonRedisSerializer;
import org.springframework.data.redis.serializer.StringRedisSerializer;

@Configuration
public class RedisTemplateConfig {
  @Bean
  public RedisTemplate < Object, Object > redisTemplate( RedisConnectionFactory factory ) {
    RedisTemplate < Object, Object > template = new RedisTemplate <>();
    template.setKeySerializer( new StringRedisSerializer() );
    template.setValueSerializer( new StringRedisSerializer() );
    template.setHashKeySerializer( new StringRedisSerializer() );
    template.setHashValueSerializer( new GenericJackson2JsonRedisSerializer() );
    template.setConnectionFactory( factory );
    return template;
  }
}